前言
最近发现自己的博客系统访问越来越慢,虽然服务器部署在国外,但也不至于这么慢,平均展示一个页面需要几秒的时间,简直无法忍受。通过chrome F12查看页面网络请求,发现主要影响页面加载缓慢的原因是从fonts.googleapis.com加载字体资源文件时,请求一直pending,导致页面渲染慢,特记录一下优化过程。
具体问题
问题1:加载如下资源慢,请求一直pending中(主要原因);
问题2:一些静态资源文件css,js,图片资源等几乎不会更新的,没有进行浏览器端缓存(次要原因);
优化策略
以下是针对上述问题的优化策略:
优化策略(问题1)
修改E:\hexo\themes\hexo-theme-next\layout_partials\head\目录下的external-fonts.swig文件,将fonts.googleapis.com域名替换为fonts.useso.com。
{% set font_host = font_config.host | default('//fonts.googleapis.com') %}
替换为
{% set font_host = font_config.host | default('//fonts.useso.com') %}优化策略(问题2)
由于hexo博客都是一些静态资源文件(js,css,png,html等),正好可以采用nginx部署博客,利用sendfile零拷贝机制及expires命令控制浏览器端缓存时间等,加速静态资源文件的访问。
## 很少变化的静态资源文件,通知浏览器端缓存15天(忽略大小写匹配)
location ~* ^/.+\.(js|css|png|jpg|gif|woff2)$ {
root /home/lipanpan.github.io/;
expires 15d;
}
location / {
root /home/lipanpan.github.io/;
index index.html index.htm;
}